package com.ruoyi.wallet.service;

import java.math.BigDecimal;
import java.util.List;
import com.ruoyi.wallet.domain.DistributionWallet;

/**
 * 分销钱包Service接口
 * 
 * @author ruoyi
 * @date 2025-10-11
 */
public interface IDistributionWalletService 
{
    /**
     * 查询分销钱包
     *
     * @param distributorId 分销用户ID
     * @return 分销钱包
     */
    public DistributionWallet selectWalletByDistributorId(Long distributorId);

    /**
     * 查询分销钱包
     *
     * @param walletId 分销钱包主键
     * @return 分销钱包
     */
    public DistributionWallet selectDistributionWalletByWalletId(Long walletId);

    /**
     * 查询分销钱包列表
     * 
     * @param distributionWallet 分销钱包
     * @return 分销钱包集合
     */
    public List<DistributionWallet> selectDistributionWalletList(DistributionWallet distributionWallet);

    /**
     * 新增分销钱包
     * 
     * @param distributionWallet 分销钱包
     * @return 结果
     */
    public int insertDistributionWallet(DistributionWallet distributionWallet);

    /**
     * 修改分销钱包
     * 
     * @param distributionWallet 分销钱包
     * @return 结果
     */
    public int updateDistributionWallet(DistributionWallet distributionWallet);

    /**
     * 批量删除分销钱包
     * 
     * @param walletIds 需要删除的分销钱包主键集合
     * @return 结果
     */
    public int deleteDistributionWalletByWalletIds(Long[] walletIds);

    /**
     * 删除分销钱包信息
     * 
     * @param walletId 分销钱包主键
     * @return 结果
     */
    public int deleteDistributionWalletByWalletId(Long walletId);

    /**
     * 计算今日佣金
     */
    public BigDecimal calculateTodayCommission(Long distributorId);

    /**
     * 计算本月佣金
     */
    public BigDecimal calculateMonthlyCommission(Long distributorId);


}
